home *** CD-ROM | disk | FTP | other *** search
- Alternative sound module
- ------------------------
-
- This directory contains an alternative version of the sound player module
- used by 'Star Fighter 3000'. Although the version numbers are identical, the
- two modules can be distinguished by their differing help strings (e.g. enter
- '*Help SFX_Handler' at the command line). The following applies only to
- machines with SharedSound installed, and is necessarily technical.
-
- Volume scaling and mixing 8 channels of linear stereo sound is quite CPU
- intensive. The game's 16 bit sound handler may cause a significant increase
- in interrupt latency (the delay before other interrupts are serviced),
- especially on older non-StrongARM machines. If interrupts are left disabled
- for longer than 100µs then strange effects may occur such as the 'real time
- clock' slowing down!
-
- SharedSound provides a mechanism for alleviating this problem; CPU
- intensive clients can register themselves as a 'call back' handler. Such
- handlers are called with interrupts enabled, and hence may legitimately take
- much longer to execute than an 'immediate' handler.
-
- Unfortunately the call back buffer is only 8 times the size of the
- hardware DMA buffer, and call backs only occur when the OS is threaded out of
- (e.g. after an interrupt or a SWI). It is quite common for the sound system
- to run out of data during periods of prolonged OS activity (typically disc
- access). This causes audible break up of sound output.
-
- This alternative sound module uses a 'call back' rather than 'immediate'
- handler for SharedSound output. The difference will probably not be
- noticeable except during initialisation and when loading missions. Raw 16
- bit sound output is unaffected, and 8 bit µ-law sound is NOT supported.
-
- Either run the module before the game so that it is used in preference to
- the internal version, or else copy it inside the application directory as
- '!Star3000.Code.SFX_Handle'.
-